package mytest;

public class Quan_Pailie {

	static void solve(String s,int k)
	{
		if(k==1)
		{
			System.out.println(s);
		}
		/*
		for(int i=0;i<s.length()-k;i++)
		{
			char c[]=s.toCharArray();
			char t=c[k];
			c[k]=c[k+i];
			c[k+i]=t;
			solve(String.valueOf(c),k+1);
		}*/
		
		char c[]=s.toCharArray();
		for(int i=0;i<k;i++)
		{
			char t=c[i];
			c[i]=c[k-1];
			c[k-1]=t;
			solve(String.valueOf(c),k-1);
			c[k-1]=c[i];
			c[i]=t;
		}
	}
	
	
	static void solve_zuhe(String src,String dst, int k,int m)
	{
		if(m==0) {
			System.out.println(dst);
		}
		for(int i=k;i<src.length();i++)
		{
			String t=dst+src.charAt(i);
			solve_zuhe(src,t,i+1,m-1);
		}
	}
	
	static void solve2_zuhe(String src)
	{
		String dst[]=new String[1<<src.length()+1];
		for(int i=0;i<src.length();i++)
		{
			dst[1<<i]=String.valueOf(src.charAt(i));
		}
		int len=1<<src.length();
		for(int i=1;i<len;i++)
		{
			if(dst[i]==null)
			{
				for(int j=1;j<i;j++)
				{
					if((j&i)==j)
					{
						dst[i]=dst[j]+dst[i-j];
						break;
					}
				}
			}
			System.out.println(dst[i]);
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//solve("abcd",0);
		solve("abcd",4);
		/*
		String s="abcd";
		for(int i=0;i<s.length();i++)
		solve_zuhe(s,"",0,i+1);
		
		System.out.println();
		System.out.println();
		System.out.println();
		*/
		
		//solve2_zuhe(s);
	}

}
